package com.mars.deepseek.model.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * DeepSeek聊天响应DTO
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "DeepSeek聊天响应")
public class ChatResponse {

    @Schema(description = "响应ID")
    private String id;
    
    @Schema(description = "对象类型")
    private String object;
    
    @Schema(description = "创建时间戳")
    private Long created;
    
    @Schema(description = "模型名称")
    private String model;
    
    @Schema(description = "系统指纹")
    private String systemFingerprint;
    
    @Schema(description = "选择结果")
    private List<Choice> choices;
    
    @Schema(description = "使用统计")
    private Usage usage;
    
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @Schema(description = "选择结果")
    public static class Choice {
        
        @Schema(description = "索引")
        private Integer index;
        
        @Schema(description = "消息内容")
        private ChatRequest.Message message;
        
        @Schema(description = "结束理由")
        private String finishReason;
    }
    
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @Schema(description = "Token使用统计")
    public static class Usage {
        
        @Schema(description = "输入Token数")
        private Integer promptTokens;
        
        @Schema(description = "输出Token数")
        private Integer completionTokens;
        
        @Schema(description = "总Token数")
        private Integer totalTokens;
    }
} 